Linux中國

CEO 的 Emacs 秘籍

幾年前,不,是幾十年前,我就在用 Emacs。不論是碼代碼、編寫文檔,還是管理郵件和日程,我都用這個編輯器,或者是說操作系統,而且我還樂此不疲。許多年過去了,我也轉向了其他更新、更好的工具。結果,就連最基本的文件瀏覽,我都已經忘了在不用滑鼠的情況下該怎麼操作。大約三個月前,我意識到我在應用程序和計算機之間切換上耗費了大量的時間,於是我決定再次使用 Emacs。這是個很正確的決定,原因有以下幾個。其中包括用 .emacs 和 Dropbox 來搭建一個良好的、可移植的環境的一些技巧。

對於那些還沒用過 Emacs 的人來說,Emacs 會讓你愛恨交加。它有點像一個房子大小的 魯布·戈德堡機械 Rube Goldberg machine ,乍一看,它具備烤麵包機的所有功能。這聽起來不像是一種認可,但關鍵詞是「乍一看」。一旦你了解了 Emacs,你就會意識到它其實是一台可以當發動機用的熱核烤麵包機……好吧,只是指文本處理的所有事情。當考慮到你計算機的使用周期在很大程度上都是與文本有關時,這是一個相當大膽的聲明。大膽,但卻是真的。

也許對我來說更重要的是,Emacs 是我曾經使用過的一個應用,並讓我覺得我真正的擁有它,而不是把我塑造成一個匿名的「用戶」,就好像位於 Soma(LCTT 譯註:舊金山的一個街區)或雷蒙德(LCTT 譯註:微軟總部所在地)附近某個高檔辦公室的產品營銷部門把錢作為明確的目標一樣。現代生產力和創作應用程序(如 Pages 或 IDE)就像碳纖維賽車,它們裝備得很好,也很齊全。而 Emacs 就像一盒經典的 Campagnolo (LCTT 譯註:世界上最好的三個公路自行車套件系統品牌之一)零件和一個漂亮的自行車牽引式鋼框架,但缺少曲柄臂和剎車桿,你必須在網上某個小眾文化中找到它們。前者更快而且很完整,後者是無盡的快樂或煩惱的源泉,當然這取決於你自己,而且這種快樂或煩惱會伴隨到你死。我就是那種在找到一堆老古董或用 Emacs Lisp 配置編輯器時會感到高興的人,具體情況因人而異。

1933 steel bicycle

一輛我還在騎的 1933 年產的鋼製自行車。你可以看看框架管差別: https://www.youtube.com/watch?v=khJQgRLKMU0

這可能給人一種 Emacs 已經過氣或過時的印象。然而並不是,Emacs 是強大和永恆的,只要你耐心地去理解它的一些規則。Emacs 的規則很另類,也很奇怪,但其中的邏輯卻引人注目,且魅力十足。對於我來說, Emacs 更像是未來而不是過去。就像牽引式鋼框架在未來幾十年里將會變得好用和舒適,而神奇的碳纖維自行車將會被扔進垃圾場,在撞擊中粉碎一樣,Emacs 也將會作為一種在最新的流行應用早已被遺忘的時候的好用的工具繼續存在這裡。

使用 Lisp 代碼來構建個人工作環境,並將這個恰到好處的環境移植到任何計算機,如果這種想法打動了你,那麼你將會愛上 Emacs。如果你喜歡很潮、很炫的,又不想投入太多時間和精力的情況下就能直接工作的話,那麼 Emacs 可能不適合你。我已經不再寫代碼了(除了 Ludwig 和 Emacs Lisp),但是 Fugue 公司的很多工程師都使用 Emacs 來提高碼代碼的效率。我公司有 30% 的工程師用 Emacs,40% 用 IDE 和 30% 的用 vim。但這篇文章是寫給 CEO 和其他 精英 Pointy-Haired Bosses (PHB 1 )(以及對 Emacs 感興趣的人)的,所以我將解釋或者說辯解我為什麼喜歡它以及我如何使用它。同時我也希望我能介紹清楚,從而讓你有個良好的體驗,而不是花上幾個小時去 Google。

恆久優勢

使用 Emacs 帶來的長期優勢是讓生活更輕鬆。與最後的收穫相比,最開始的付出完全值得。想想這些:

簡單高效

Org 模式本身就值得花時間,但如果你像我一樣,你通常要處理十幾份左右的文件 —— 從博客帖子到會議事務清單,再到員工評估。在現代計算世界中,這通常意味著要使用多個應用程序,所有這些程序都有不同的用戶界面、保存方式、排序和搜索方式。結果就是你需要不斷轉換思維環境,記住各種細節。我討厭在程序間切換,這是在強人所難,因為這是個不完整界面模型 2 ,並且我討厭記住本該由計算機記住的東西。在單個環境下,Emacs 對 PHB 甚至比對於程序員更高效,因為程序員更多時候只需要專註於一個程序。轉換思維環境的成本比表面上的要更高。操作系統和應用程序廠商已經構建了各種界面,以分散我們對這一現實的注意力。如果你是技術人員,通過快捷鍵(M-:)來訪問功能強大的語言解釋器會方便的多 3

許多應用程序可以全天全屏地用於編輯文本。但Emacs 是唯一的,因為它既是編輯器也是 Emacs Lisp 解釋器。從本質上來說,你工作時只要用電腦上的一兩個鍵就能完成。如果你略懂編程的話,就會發現這代表著你可以在 Emacs 中做 任何事情。一旦你在內存中存儲了這些指令,你的電腦就可以在工作時幾乎實時地為你提供高效的運轉。你不會想用 Emacs Lisp 來重建 Excel,因為只要用簡單的一兩行代碼就能實現 Excel 中大多數的功能。比如說我要處理數字,我更有可能轉到 scratch 緩衝區,編寫一些代碼,而不是打開電子表格。即便是要寫一封比較大的郵件時,我通常也會先在 Emacs 中寫完,然後再複製粘貼到郵件客戶端中。當你可以流暢的書寫時,為什麼要去切換呢?你可以先從一兩個簡單的算術開始,隨著時間的推移,你可以很容易的在 Emacs 中添加你所需要處理的計算。這在應用程序中可能是獨一無二的,同時還提供了讓為其他的人創造的豐富特性。還記得艾薩克·阿西莫夫書中那些神奇的終端嗎? Emacs 是我所遇到的最接近它們的東西 4 。我決定不再用什麼應用程序來做這個或那個。相反,我只是工作。擁有一個偉大的工具並致力於此,這才是真正的動力和效率。

靜中造物

擁有所發現的最好的文本編輯功能的最終結果是什麼?有一群人在做各種各樣有用的補充嗎?發揮了 Lisp 鍵盤的全部威力了嗎?我用 Emacs 來完成所有的創作性工作,音樂和圖片除外。

我辦公桌上有兩個顯示器。其中一塊豎屏是將 Emacs 全天全屏顯示,另一個顯示瀏覽器,用來搜索和閱讀,我通常也會打開一個終端。我將日曆、郵件等放在 OS X 的另一個桌面上,當我使用 Emacs 時,這個桌面會隱藏起來,同時我也會關掉所有通知。這樣就能讓我專註於我手頭上在做的事了。我發現,越是先進的 UI 應用程序,消除干擾越是不可能,因為這些應用程序致力於提供幫助和易用性。我不需要經常被提醒該如何操作,我已經做了成千上萬次了,我真正需要的是一張乾淨整潔的白紙用來思考。也許因為年齡和自己的「惡習」,我不太喜歡處在嘈雜的環境中,但我認為這值得一試。看看在你電腦環境中有一些真正的寧靜是怎樣的。當然,現在很多應用程序都有隱藏界面的模式,謝天謝地,蘋果和微軟現在都有了真正意義上的全屏模式。但是,沒有並沒有應用程序可以強大到足以「處理」大多數事務。除非你整天寫代碼,或者像出書一樣,處理很長的文檔,否則你仍然會面臨其他應用程序的干擾。而且,大多數現代應用程序似乎同時顯得自視甚高,缺乏功能和可用性 5 。比起 office 桌面版,我更討厭它的在線版。

我的桌面布局, Emacs 在左邊

但是溝通呢?創造和溝通之間的差別很大。當我將這兩件事在不同時間段處理時,我的效率會更高。我們 Fugue 公司使用 Slack,痛並快樂著。我把 Slack 和我的日曆、電子郵件放在一個即時通訊的桌面上,這樣,當我正在做事時,我就能夠忽略所有的聊天信息了。雖然只要一個 Slackstorm 或一封風投或董事會董事的電子郵件,就能讓我立刻丟掉手頭工作。但是,大多數事情通常可以等上一兩個小時。

普適恆久

第三個原因是,我發現 Emacs 比其它的環境更有優勢的是,你可以很容易地用它來處理事務。我的意思是,你所需要的只是通過類似於 Dropbox 的網站同步一兩個目錄,而不是讓大量的應用程序以它們自己的方式進行交互和同步。然後,你可以在任何你已經精心打造了適合你的目的的套件的環境中工作了。我在 OS X、Windows,或有時在 Linux 都是這樣做的。它非常簡單可靠。這種功能很有用,以至於我害怕處理 Pages、Google Docs、Office 或其他類型的文件和應用程序,這些文件和應用程序會迫使我回到文件系統或雲中的某個地方去尋找。

限制在計算機上永久存儲的因素是文件格式。假設人類已經解決了存儲問題 6 ,隨著時間的推移,我們面臨的問題是我們能否夠繼續訪問我們創建的信息。文本文件是保存時間最久的格式。你可以用 Emacs 輕鬆地打開 1970 年的文本文件。然而對於 Office 應用程序卻並非如此。同時文本文件要比 Office 應用程序數據文件小得多,也要好的多。作為一個數碼背包迷,作為一個在腦子裡一閃而過就會做很多小筆記的人,擁有一個簡單、輕便、永久、隨時可用的東西對我來說很重要。

如果你準備嘗試 Emacs,請繼續讀下去!下面的部分不是完整的教程,但是在讀完後,就可以動手操作了。

駕馭之道 —— 專業定製

所有這些強大、精神上的平靜和安寧的代價是,Emacs 有一個陡峭的學習曲線,它的一切都與你以前所習慣的不同。一開始,這會讓你覺得你是在浪費時間在一個過時和奇怪的應用程序上,就好像穿越到過去。這有點像你只開過車,卻要你去學騎自行車 7

類型抉擇

我用的是來自 GNU 的 OS X 和 Windows 的通用版本的 Emacs。你可以在 http://emacsformacos.com/ 獲取 OS X 版本,在 http://www.gnu.org/software/emacs/ 獲取 Windows 版本。市面上還有很多其他版本,尤其是 Mac 版本,但我發現,要做一些功能強大的東西(涉及到 Lisp 和許多模式),學習曲線要比實際操作低得多。下載,然後我們就可以開始了 8

駕馭之始

在本文中,我將使用 Emacs 的按鍵和組合鍵約定。C 表示 Control 鍵,M 表示 meta(通常是 AltOption 鍵),以及用於組合鍵的連字元。因此,C-h t 表示同時按下 Controlh 鍵,然後釋放,再按下 t。這個組合快捷鍵會指向一個教程,這是你首先要做的一件事。

不要使用方向鍵或滑鼠。它們可以工作,但是你應該給自己一周的時間來使用 Emacs 教程中的原生的導航命令。一旦你這些命令變為了肌肉記憶,你可能就會樂在其中,無論到哪裡,你都會非常想念它們。這個 Emacs 教程在介紹它們方面做得很好,但是我將進行總結,所以你不需要閱讀全部內容。最無聊的是,不用方向鍵,用 C-b 向前移動,用 C-f 向後移動,上一行用 C-p,下一行用 C-n。你可能會想:「我用方向鍵就很好,為什麼還要這樣做?」 有幾個原因。首先,你不需要從主鍵盤區將你的手移開。第二,使用 Alt(或用 Emacs 的說法 Meta)鍵來向前或向後在單詞間移動。顯而易見這樣更方便。第三,如果想重複某個命令,可以在命令前面加上一個數字。在編輯文檔時,我經常使用這種方法,通過估計向後移動多少個單詞或向上或向下移動多少行,然後按下 C-9 C-pM-5 M-b 之類的快捷鍵。其它真正重要的導航命令基於開頭用 a 和結尾用 e。在行中使用 C-a|e,在句中使用 M-a|e。為了讓句中的命令正常工作,需要在句號後增加兩個空格,這同時提供了一個有用的特性,並消除了腦中一個過時的觀點。如果需要將文檔導出到單個空間發布環境,可以編寫一個宏來執行此操作。

Emacs 所附帶的教程很值得去看。對於真正缺乏耐心的人,我將介紹一些重要的命令,但那個教程非常有用。記住:用 C-h t 進入教程。

駕馭之複製粘貼

你可以把 Emacs 設為 CUA 模式,這將會以熟悉的方式工作來操作複製粘貼,但是原生的 Emacs 方法更好,而且你一旦學會了它,就很容易。你可以使用 Shift 和導航命令來標記區域(如同選擇)。所以 C-F 是選中游標前的一個字元,等等。亦可以用 M-w 來複制,用 C-w 剪切,然後用 C-y 粘貼。這些實際上叫做 刪除 killing 召回 yanking ,但它非常類似於剪切和粘貼。在刪除中還有一些小技巧,但是現在,你只需要關注剪切、複製和粘貼。如果你開始嘗試了,那麼 C-x u 是撤銷。

駕馭之 Ido 模式

相信我,Ido 會讓文件的工作變得很簡單。通常,你在 Emacs 中處理文件不需要使用一個單獨的訪達或文件資源管理器的窗口。相反,你可以用編輯器的命令來創建、打開和保存文件。如果沒有 Ido 的話,這將有點麻煩,所以我建議你在學習其他之前安裝好它。 Ido 是 Emacs 的 22 版時開始出現的,但是需要對你的 .emacs 文件做一些調整,來確保它一直開啟著。這是個配置環境的好理由。

Emacs 中的大多數功能都表現在模式上。要安裝指定的模式,需要做兩件事。嗯,一開始你需要做一些額外的事情,但這些只需要做一次,然後再做這兩件事。那麼,這件額外的事情是你需要一個單獨的位置來放置所有 Emacs Lisp 文件,並且你需要告訴 Emacs 這個位置在哪。我建議你在 Dropbox 上創建一個單獨的目錄,那是你 Emacs 主目錄。在這裡,你需要創建一個 .emacs 文件和 .emacs.d 目錄。在 .emacs.d 目錄下,創建一個 lisp 的目錄。就像這樣:

home
|
+.emacs
|
-.emacs.d
  |
  -lisp

你可以將 .el 文件,比如說模式文件,放到 home/.emacs.d/lisp 目錄下,然後在你的 .emacs 文件中添加以下代碼來指明該路徑:

(add-to-list 'load-path "~/.emacs.d/lisp/")

Ido 模式是 Emacs 自帶的,所以你不需要在你的 lisp 目錄中放這個 .el 文件,但你仍然需要添加上面代碼,因為下面的介紹會使用到它.

駕馭之符號鏈接

等等,這裡寫的 .emacs.emacs.d 都是存放在你的主目錄下,但我們把它們放到了 Dropbox 的某些愚蠢的文件夾!對,這就讓你的環境在任何地方都很容易使用。把所有東西都保存在 Dropbox 上,並做符號鏈接到 ~ 下的 .emacs.emacs.d 和你的主要存放文檔的目錄。在 OS X 上,使用 ln -s 命令非常簡單,但在 Windows 上卻很麻煩。幸運的是,Emacs 提供了一種簡單的方法來替代 Windows 上的符號鏈接,Windows 的 HOME 環境變數。轉到 Windows 的環境變數(Windows 10,你可以按 Windows 鍵然後輸入 「環境變數」 來搜索,這是 Windows 10 最好的地方了),在你的帳戶下創建一個指向你在 Dropbox 中 Emacs 的文件夾的 HOME 環境變數。如果你想方便地瀏覽 Dropbox 之外的本地文件,你可能想在你的實際主目錄下建立一個到 Dropbox 下 Emacs 主目錄的符號鏈接。

至此,你已經完成了在任意機器上指向你的 Emacs 配置和文件所需的技巧。如果你買了一台新電腦,或者用別人的電腦一小時或一天,你就可以得到你的整個工作環境。第一次操作起來似乎有點難,但是一旦你知道你在做什麼,就(最多)只需要 10 分鐘。

但我們現在是在配置 Ido ……

按下 C-x C-f 然後輸入 ~/.emacs 和兩次回車來創建 .emacs 文件,將下面幾行添加進去:

;; set up ido mode
(require `ido)
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(ido-mode 1)

.emacs 窗口開著的時候,執行 M-x evaluate-buffer 命令。如果某處弄錯了的話,將得到一個錯誤,或者你將得到 Ido。Ido 改變了在 minibuffer 中操作文件操方式。關於這個有一篇比較好的文檔,但是我也會指出一些技巧。有效地使用 ~/;你可以在 minibuffer 的任何地方輸入 ~/,它就會跳轉到主目錄。這就意味著,你應該讓你的大部分東西就近的放在主目錄下。我用 ~/org 目錄來保存所有非代碼的東西,用 ~/code 保存代碼。一旦你進入到正確的目錄,通常會擁有一組具有不同擴展名的文件,特別是當你使用 Org 模式並從中發布的話。你可以輸入 . 和想要的擴展名,無論你的在文件名的什麼位置,Ido 都會將選擇限制在具有該擴展名的文件中。例如,我在 Org 模式下寫這篇博客,所以該文件是:

~/org/blog/emacs.org

我偶爾也會用 Org 模式發布成 HTML 格式,所以我將在同一目錄下得到 emacs.html 文件。當我想打開該 Org 文件時,我會輸入:

C-x C-f ~/o[RET]/bl[RET].or[RET]

其中 [RET] 是我使用 Ido 模式的自動補全而按下的回車鍵。所以,這隻需要按 12 個鍵,如果你習慣了的話, 這將比打開訪達或文件資源管理器再用滑鼠點要節省 很 多時間。 Ido 模式很有用,而這只是操作 Emacs 的一種實用模式而已。下面讓我們去探索一些其它對完成工作很有幫助的模式吧。

駕馭之字體風格

我推薦在 Emacs 中使用漂亮的字體族。它們可以使用不同的括弧、0 和其他字元進行自定義。你可以在字體文件本身中構建額外的行間距。我推薦 1.5 倍的行間距,並在代碼和數據中使用不等寬字體。寫作中我用 Serif 字體,它有一種緊湊但時髦的感覺。你可以在 http://input.fontbureau.com/ 上找到它們,在那裡你可以根據自己的喜好進行定製。你可以使用 Emacs 中的菜單手動設置字體,但這會將代碼保存到你的 .emacs 文件中,如果你使用多個設備,你可能需要一些不同的設置。我將我的 .emacs 設置為根據使用的機器的名稱來相應配置屏幕。代碼如下:

;; set up fonts for different OSes. OSX toggles to full screen.
(setq myfont "InputSerif")
(cond
((string-equal system-name "Sampo.local")
 (set-face-attribute 'default nil :font myfont :height 144)
 (toggle-frame-fullscreen))
((string-equal system-name "Morpheus.local")
 (set-face-attribute 'default nil :font myfont :height 144))
((string-equal system-name "ILMARINEN")
 (set-face-attribute 'default nil :font myfont :height 106))
((string-equal system-name "UKKO")
 (set-face-attribute 'default nil :font myfont :height 104)))

你應該將 Emacs 中的 system-name 的值替換成你通過 (system-name) 得到的值。注意,在 Sampo (我的 MacBook)上,我還將 Emacs 設置為全屏。我也想在 Windows 實現這個功能,但是 Windows 和 Emacs 好像互相嫌棄對方,當我嘗試配置時,它總是不穩定。相反,我只能在啟動後手動全屏。

我還建議去掉 Emacs 中的上世紀 90 年代出現的難看工具欄,當時比較流行在應用程序中使用工具欄。我還去掉了一些其它的「電鍍層」,這樣我就有了一個簡單、高效的界面。把這些加到你的 .emacs 的文件中來去掉工具欄和滾動條,但要保留菜單(在 OS X 上,它將被隱藏,除非你將滑鼠到屏幕頂部):

(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
(if (fboundp 'tool-bar-mode) (tool-bar-mode -1))
(if (fboundp 'menu-bar-mode) (menu-bar-mode 1))

駕馭之 Org 模式

我基本上是在 Org 模式下處理工作的。它是我創作文檔、記筆記、列任務清單以及 90% 其他工作的首選環境。Org 模式是筆記和待辦事項列表的組合工具,最初是由一個在會議中使用筆記本電腦的人構想出來的。我反對在會議中使用筆記本電腦,自己也不使用,所以我的用法與他的有些不同。對我來說,Org 模式主要是一種處理結構中內容的方式。在 Org 模式中有標題和副標題等,它們的作用就像一個大綱。Org 模式允許你展開或隱藏大綱樹,還可以重新排列該樹。這正合我意,並且我發現用這種方式使用它是一種樂趣。

Org 模式也有很多讓生活愉快的小功能。例如,腳註處理非常好,LaTeX/PDF 輸出也很好。Org 模式能夠根據所有文檔中的待辦事項生成議程,並能很好地將它們與日期/時間聯繫起來。我不把它用在任何形式的外部任務上,這些任務都是在一個共享的日曆上處理的,但是在創建事物和跟蹤我未來需要創建的東西時,它是無價的。安裝它,你只要將 org-mode.el 放到你的 lisp 目錄下。如果你想要它基於文檔的結構進行縮進並在打開時全部展開的話,在你的 .emacs 文件中添加如下代碼:

;; set up org mode
(setq org-startup-indented t)
(setq org-startup-folded "showall")
(setq org-directory "~/org")

最後一行是讓 Org 模式知道在哪裡查找要包含在議程和其他事情中的文件。我把 Org 模式保存在我的主目錄中,也就是說,像前面介紹的一樣,它是 Dropbox 目錄的一個符號鏈接。

我有一個總是在緩衝區中打開的 stuff.org 文件。我把它當作記事本。Org 模式使得提取待辦事項和有期限的事情變得很容易。當你能夠內聯 Lisp 代碼並在需要計算它時,它特別有用。擁有包含內容的代碼非常方便。同樣,你可以使用 Emacs 訪問實際的計算機,這是一種解放。

用 Org 模式進行發布

我關心的是文檔的外觀及格式。我剛開始工作時是個設計師,而且我認為信息可以,也應該表現得清晰和美麗。Org 模式對將 LaTeX 生成 PDF 支持的很好,LaTeX 雖然也有學習曲線,但是很容易處理一些簡單的事務。

如果你想使用字體和樣式,而不是典型的 LaTeX 字體和樣式,你需要做些事。首先,你要用到 XeLaTeX,這樣就可以使用普通的系統字體,而不是 LaTeX 的特殊字體。接下來,你需要將以下代碼添加到 .emacs 中:

(setq org-latex-pdf-process
 '("xelatex -interaction nonstopmode %f"
  "xelatex -interaction nonstopmode %f"))

我把這個放在 .emacs 中 Org 模式配置部分的末尾,使文檔變得更整潔。這讓你在從 Org 模式發布時可以使用更多格式化選項。例如,我經常使用:

#+LaTeX_HEADER: usepackage{fontspec}
#+LATEX_HEADER: setmonofont[Scale=0.9]{Input Mono}
#+LATEX_HEADER: setromanfont{Maison Neue}
#+LATEX_HEADER: linespread{1.5}
#+LATEX_HEADER: usepackage[margin=1.25in]{geometry}

#+TITLE: Document Title Here

這些都可以在 .org 文件中找到。我們的公司規定的正文字體是 Maison Neue,但你也可以在這寫上任何適當的東西。我很是抵制 Maison Neue,因為這是一種糟糕的字體,任何人都不應該使用它。

這個文件是一個使用該配置輸出為 PDF 的實例。這就是開箱即用的 LaTeX 一樣。在我看來這還不錯,但是字體很平淡,而且有點奇怪。此外,如果你使用標準格式,人們會覺得他們正在閱讀的東西是、或者假裝是一篇學術論文。別怪我沒提醒你。

駕馭之 Ace Jump 模式

這只是一個輔助模式,而不是一個主模式,但是你也需要它。其工作原理有點像之前提到的 Jef Raskin 的 Leap 功能 9 。 按下 C-c C-SPC,然後輸入要跳轉到單詞的第一個字母。它會高亮顯示所有以該字母開頭的單詞,並將其替換為字母表中的字母。你只需鍵入所需位置的字母,游標就會跳轉到該位置。我常將它作為導航鍵或是用來檢索。將 .el 文件下到你的 lisp 目錄下,並在 .emacs 文件添加如下代碼:

;; set up ace-jump-mode
(add-to-list 'load-path "which-folder-ace-jump-mode-file-in/")
(require 'ace-jump-mode)
(define-key global-map (kbd "C-c C-SPC" ) 'ace-jump-mode)

待續

本文已經夠詳細了,你能在其中得到你所想要的。我很想知道除編程之外(或用於編程)Emacs 的使用情況,及其是否高效。在我使用 Emacs 的過程中,可能存在一些自作聰明的老闆式想法,如果你能指出來,我將不勝感激。之後,我可能會寫一些更新來介紹其它特性或模式。我很確定我將會向你展示如何在 Emacs 和 Ludwig 模式下使用 Fugue,因為我會將它發展成比代碼高亮更有用的東西。更多想法,請在 Twitter 上 @fugueHQ

腳註

  1. 如果你是位精英,但從沒涉及過技術方面,那麼 Emacs 並不適合你。對於少數的人來說,Emacs 可能會為他們開闢一條通往計算機技術方面的道路,但這只是極少數。如果你知道怎麼使用 Unix 或 Windows 的終端,或者曾編輯過 dotfile,或者說你曾寫過一點代碼的話,這對使用 Emacs 有很大的幫助。
  2. 參考鏈接: http://archive.wired.com/wired/archive/2.08/tufte.html
  3. 我主要是在寫作時使用這個模式來進行一些運算。比如說,當我在給一個新僱員寫一封入職信時,我想要算這封入職信中有多少個選項。由於我在我的 .emacs 為 outstanding-shares 定義了一個變數,所以我只要按下 M-: 然後輸入 (* .001 outstanding-shares) 就能再無需打開計算器或電子表格的情況下得到精度為 0.001 的結果。我使用了 大量 的變數來避免程序間切換。
  4. 缺少的部分是 web。有個名為 eww 的 Emacs 網頁瀏覽器能夠讓你在 Emacs 中瀏覽網頁。我用的就是這個,因為它既能攔截廣告(LCTT 譯註:實質上是無法顯示,/laugh),同時也在可讀性方面為 web 開發者消除了大多數差勁的選項。這個其實有點類似於 Safari 的閱讀模式。不幸的是,大部分網站都有很多令人討厭的繁瑣的東西以及難以轉換為文本的導航,
  5. 易用性和易學性這兩者經常容易被搞混。易學性是指學習使用工具的難易程度。而易用性是指工具高效的程度。通常來說,這是要差別的,就想滑鼠和菜單欄的差別一樣。菜單欄很容易學會,但是卻不怎麼高效,以致於早期會存在一些鍵盤的快捷鍵。除了在 GUI 方面上,Raskin 在很多方面上的觀點都很正確。如今,操作系統正在將一些合適的搜索映射到鍵盤的快捷鍵上。比如說在 OS X 和 Windows 上,我默認的導航方式就是搜索。Ubuntu 的搜索做的很差勁,如同它的 GUI 一樣差勁。
  6. 在有網的情況下,AWS S3 是解決文件存儲問題的有效方案。數萬億個對象存在 S3 中,但是從來沒有遺失過。大部分提供雲存儲的服務都是在 S3 上或是模擬 S3 構建的。沒人能夠擁有 S3 一樣的規模,所以我將重要的文件通過 Dropbox 存儲在上面。
  7. 目前,你可能會想:「這個人和自行車有什麼關係?」……我在各個層面上都喜歡自行車。自行車是迄今為止發明的最具機械效率的交通工具。自行車可以是真正美麗的事物。而且,只要注意點的話,自行車可以用一輩子。早在 2001 年,我曾向 Rivendell Bicycle Works 訂購了一輛自行車,現在我每次看到那輛自行車依然很高興,自行車和 Unix 是我接觸過的最好的兩個發明。對了,還有 Emacs。
  8. 這個網站有一個很棒的 Emacs 教程,但不是這個。當我瀏覽這個頁面時,我確實得到了一些對獲取高效的 Emacs 配置很重要的知識,但無論怎麼說,這都不是個替代品。
  9. 20 世紀 80 年代,Jef Raskin 與 Steve Jobs 在 Macintosh 項目上鬧翻後, Jef Raskin 又設計了 Canon Cat 計算機。這台 Cat 計算機是以文檔為中心的界面(所有的計算機都應如此),並以一種全新的方式使用鍵盤,你現在可以用 Emacs 來模仿這種鍵盤。如果現在有一台現代的,功能強大的 Cat 計算機並配有一個高分辨的顯示器和 Unix 系統的話,我立馬會用 Mac 來換。https://youtu.be/oTlEU_X3c?t=19s

via: https://blog.fugue.co/2015-11-11-guide-to-emacs.html

作者:Josh Stella 譯者:oneforalone 校對:wxy, oneforalone

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國